Maggie Ip's profile

SunTime - Smart product that relief bed sore (2014)

SunTime is a smart light for people who are confined to lie in bed or sit for prolonged periods of time. A sensor mat is placed under the patient to work out the patient’s posture, and the built-in arduino will calculates and turns the LEDs units on gradually with a corresponding time interval. Through indicating the patient’s need of reposition regularly, the chance of developing pressure ulcer is minimized.
TOUCH SENSOR
CIRCUIT DIAGRAM
CODING
 
int sensorPin1 = A0;
int sensorPin2 = A1;
int sensorPin3 = A2;
int sensorPin4 = A3;
int ledPin3 = 3;
int ledPin4 = 4;
int ledPin5 = 5;
int ledPin6 = 6;
int ledPin7 = 7;
int ledPin8 = 8;
int ledPin9 = 9;
int ledPin10 = 10;
int ledPin11 = 11 ;
int ledPin12 = 12;
int ledPin13 = 13;
int sensorValue1 = 0;
int sensorValue2 = 0;
int sensorValue3 = 0;
int sensorValue4 = 0;
int resetMove = 0, oneSet = 0, twoSet=0, threeSet = 0, fourSet=0;
unsigned long startTime = 0, endTime = 0, totalTime = 0, sensorNumber = 0;
 
void setup() {
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(ledPin5, OUTPUT);
  pinMode(ledPin6, OUTPUT);
  pinMode(ledPin7, OUTPUT);
  pinMode(ledPin8, OUTPUT);
  pinMode(ledPin9, OUTPUT);
  pinMode(ledPin10, OUTPUT);
  pinMode(ledPin11, OUTPUT);
  pinMode(ledPin12, OUTPUT);
  pinMode(ledPin13, OUTPUT);
  Serial.begin(9600);
}
 
void loop() {
    resetMove = 0;
 
    sensorValue1 = analogRead(sensorPin1);
    sensorValue2 = analogRead(sensorPin2);
    sensorValue3 = analogRead(sensorPin3);
    sensorValue4 = analogRead(sensorPin4); 
 
sensorNumber = 0;
    if(sensorValue1 > 500){ 
          oneSet = 1;
          sensorNumber++;
      } 
     if(sensorValue2 > 500){
        twoSet = 1;
        sensorNumber++;
      }
     if(sensorValue3 > 500){      
        threeSet = 1;
        sensorNumber++;
      }
     if(sensorValue4 > 500){
        fourSet = 1;
        sensorNumber++;
      }
 
    startTime = millis();
 
 while(((sensorValue1 > 500) || (sensorValue2 > 500) || (sensorValue3 > 500)|| (sensorValue4 > 500))&& (resetMove == 0)) {  
 
   endTime = millis();
    totalTime=endTime-startTime;

    if(totalTime > 2000 * sensorNumber){   // totalTime is adjustable
      digitalWrite(ledPin5,HIGH);          // 2 seconds time-interval is used for testing
    }
    if(totalTime > 4000 * sensorNumber){
      digitalWrite(ledPin12,HIGH);
    }
    if(totalTime > 6000 * sensorNumber){
      digitalWrite(ledPin13,HIGH);
    }
     if(totalTime > 8000 * sensorNumber){
      digitalWrite(ledPin8,HIGH);
    }
     if(totalTime > 10000 * sensorNumber){
      digitalWrite(ledPin7,HIGH);
    }
     if(totalTime > 12000 * sensorNumber){
      digitalWrite(ledPin6,HIGH);
    }
     if(totalTime > 14000 * sensorNumber){
      digitalWrite(ledPin3,HIGH);
    }
     if(totalTime > 16000 * sensorNumber){
      digitalWrite(ledPin4,HIGH);
    }
     if(totalTime > 18000 * sensorNumber){            
      digitalWrite(ledPin9,HIGH);                   
      delay(100);                                  // to create flashing stars
      digitalWrite(ledPin9,LOW);
      delay(100);
    }
    if(totalTime > 20000 * sensorNumber){
       digitalWrite(ledPin10,HIGH);
       delay(100);
       digitalWrite(ledPin10,LOW);
       delay(100);
    } 
     if(totalTime > 22000 * sensorNumber){
       digitalWrite(ledPin11,HIGH);
       delay(100);
       digitalWrite(ledPin11,LOW);
       delay(100);
    }
 
    sensorValue1 = analogRead(sensorPin1);
    if(((oneSet == 0) && (sensorValue1 > 500)) || ((oneSet == 1) && (sensorValue1 < 500))) {
      resetMove = 1;
      oneSet=0;
      twoSet=0;
      threeSet=0;
      fourSet=0;
    }
    sensorValue2 = analogRead(sensorPin2);
     if(((twoSet == 0) && (sensorValue2 > 500)) || ((twoSet == 1) && (sensorValue2 < 500))){
      resetMove = 1;
      oneSet=0;
      twoSet=0;
      threeSet=0;
      fourSet=0;
    }
     sensorValue3 = analogRead(sensorPin3);
     if(((threeSet == 0) && (sensorValue3 > 500)) || ((threeSet == 1) && (sensorValue3 < 500))){
      resetMove = 1;
      oneSet=0;
      twoSet=0;
      threeSet=0;
      fourSet=0;
    }   
     sensorValue4 = analogRead(sensorPin4);
     if(((fourSet == 0) && (sensorValue4 > 500)) || ((fourSet == 1) && (sensorValue4 < 500))){
      resetMove = 1;
      oneSet=0;
      twoSet=0;
      threeSet=0;
      fourSet=0;
    }     
 }
 
  digitalWrite(ledPin3,LOW);
 
digitalWrite(ledPin4,LOW);
 
digitalWrite(ledPin5,LOW);
  digitalWrite(ledPin6,LOW);
 
digitalWrite(ledPin7,LOW);
  digitalWrite(ledPin8,LOW);
  digitalWrite(ledPin9,LOW);
  digitalWrite(ledPin10,LOW);
  digitalWrite(ledPin11,LOW);
  digitalWrite(ledPin12,LOW);
  digitalWrite(ledPin13,LOW);
}
SunTime - Smart product that relief bed sore (2014)
Published:

SunTime - Smart product that relief bed sore (2014)

SunTime is a smart light for people who are confined to lie in bed or sit for prolonged periods of time. A sensor mat is placed under the patient Read More

Published:

Creative Fields